/**
 *  fairy 版权所有 Copyright@2016年3月18日
 */
package com.fairy.core.encrypt;

/**
 * [Byte2Hex.java]
 *
 * @ProjectName: [fairy_core]
 * @Author: [waysun]
 * @CreateDate: [2016年3月18日 下午4:04:52]
 * @Update: [说明本次修改内容] BY [waysun] [2016年3月18日 下午4:04:52]
 * @Version: [v1.0]
 */

public class Byte2Hex {

	  /**
	   * 将二进制转换成16进制
	   * 
	   * @param buf
	   * @return
	   */
	  public static String byte2Hex(byte buf[]) {
	    StringBuffer sb = new StringBuffer();
	    for (int i = 0; i < buf.length; i++) {
	      String hex = Integer.toHexString(buf[i] & 0xFF);
	      if (hex.length() == 1) {
	        hex = '0' + hex;
	      }
	      sb.append(hex.toUpperCase());
	    }
	    return sb.toString();
	  }

	  /**
	   * 将16进制转换为二进制
	   * 
	   * @param hexStr
	   * @return
	   */
	  public static byte[] hex2Byte(String hexStr) {
	    if (hexStr.length() < 1)
	      return null;
	    byte[] result = new byte[hexStr.length() / 2];
	    for (int i = 0; i < hexStr.length() / 2; i++) {
	      int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);
	      int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2),
	          16);
	      result[i] = (byte) (high * 16 + low);
	    }
	    return result;
	  }
}



